/**
 * @file LayerManagerMode.hpp
 *
 * @date 30/12/2011
 * @author Tales 
 *
 */

#ifndef LAYERMANAGERMODE_HPP_
#define LAYERMANAGERMODE_HPP_

#include "ConsoleModeBase.hpp"

namespace yep
{

/**
 * @brief Gerencia as camadas
 */
class LayerManagerMode: public yep::ConsoleModeBase
{
public:
	/**
	 * @brief Returna a próxima linha e sua função
	 * @return A próxima linha e sua função no console.
	 */
	virtual pair<string, Function> getNextLine(Editor & editor);

	/**
	 * Quando a função da linha anterior for diferente de NO_FUNCTION, a resposta é enviada para este método.
	 * @param answer a resposta digitada pelo usuário.
	 */
	virtual void handleAnswer(Editor & editor, string answer);

	/**
	 * @brief Prepara primeira linha.
	 */
	void setup();
private:
	int state;
	int option;
};

} /* namespace yep */
#endif /* LAYERMANAGERMODE_HPP_ */
